package com.mf.service.authority;

import com.mf.domain.authority.UserRoleRelation;
import com.mf.service.framework.IService;

import java.util.List;
import java.util.Map;

/**
 * 用户角色关联信息Service层接口类
 * User: zhaoming
 * DateTime: 2016-07-15
 * To change this template use File | Settings | File Templates.
 **/
public interface UserRoleRelationService extends IService<UserRoleRelation> {

    /**
     * 查询用户角色映射列表
     * @param userRoleRelation 用户角色关联信息Domain
     * @return 用户角色映射列表
     */
    List<UserRoleRelation> selectByCondition(UserRoleRelation userRoleRelation);

    /**
     * 根据用户编码和角色编码查询
     * @param userRoleRelation 用户角色关联信息Domain
     * @return 用户角色映射列表
     */
    Map<String, Object> checkRepeat(UserRoleRelation userRoleRelation);

    /**
     * 验证用户编码
     * @param userCode 用户编码
     * @param assignRoleCode 角色编码
     * @return 验证结果
     */
    Map<String, Object> checkUserCode(String userCode, String assignRoleCode);

    /**
     * 获取角色信息
     * @param userRoleRelation 用户角色关联信息Domain
     * @return
     */
    List<Map<String, Object>> getRoles(UserRoleRelation userRoleRelation);

    /**
     * 分配角色
     * @param userCode 流程用户编码
     * @param roleCode 角色编码
     */
    boolean assignRole(String userCode, String roleCode);

    /**
     * 获取用户信息
     * @param userRoleRelation 用户角色关联信息Domain
     */
    List<Map<String, Object>> getUsers(UserRoleRelation userRoleRelation);

    /**
     * 分配用户
     * @param userCode 用户编码
     * @param roleCode 角色编码
     */
    boolean assignUser(String userCode, String roleCode);
}
